import { requestClient } from '#/api/request';

export namespace EdubaseMajorsApi {
  /** 专业管理信息 */
  export interface Majors {
    id: number; // 主键
    majorsCode?: string; // 专业编码
    majorsName?: string; // 专业名称
    degreeAwardedCode: string; // 学位授予门类编码
    degreeAwardedName: string; // 学位授予门类名称
    rate: number; // 级别
    parentId: number; // 上级id
    parentCode: string; // 上级编码
    idPath: string; // id所有路径
    codePath: string; // 编码所有路径
    firstLevelCode: string; // 一级学科（门类）编码
    firstLevelName: string; // 一级学科（门类）名称
    secondLevelCode: string; // 二级学科（专业类）编码
    secondLevelName: string; // 二级学科（专业类）名称
    durationStudy: string; // 修业年限
    setYear: string; // 设置年份
    period?: number; // 学段编码
    status?: string; // 是否有效 0 禁用 1 启用
    children?: Majors[];
  }
}

/** 查询专业管理列表 */
export function getMajorsList(data: any) {
  return requestClient.post<EdubaseMajorsApi.Majors[]>(
    '/edu/base/majors/list',
    data,
  );
}

/** 查询专业管理详情 */
export function getMajors(id: number) {
  return requestClient.get<EdubaseMajorsApi.Majors>(
    `/edu/base/majors/get?id=${id}`,
  );
}

/** 新增专业管理 */
export function createMajors(data: EdubaseMajorsApi.Majors) {
  return requestClient.post('/edu/base/majors/create', data);
}

/** 修改专业管理 */
export function updateMajors(data: EdubaseMajorsApi.Majors) {
  return requestClient.put('/edu/base/majors/update', data);
}

/** 删除专业管理 */
export function deleteMajors(id: number) {
  return requestClient.delete(`/edu/base/majors/delete?id=${id}`);
}

/** 导出专业管理 */
export function exportMajors(params: any) {
  return requestClient.download('/edu/base/majors/export-excel', { params });
}
